package cn.lizemin.state.version0.entity;

/**
 * @author lzm
 * @version 1.0
 * @description: 存在的缺陷：
 *  每次改变状态都需要new出一个新的状态对象，非常浪费，所以状态最好设置成单例的，
 *  因此还需要用单例模式改造下状态类
 *
 * @date 2022/4/25 10:16
 */
public class Green implements State {
    @Override
    public void switchToGreen(TrafficLight trafficLight) {
        throw new RuntimeException("ERROR！当前状态已经是绿灯，无须再切换");
    }

    @Override
    public void switchToYellow(TrafficLight trafficLight) {
        trafficLight.setState(new Yellow());
        System.out.println("黄灯亮60s...");
    }

    @Override
    public void switchToRed(TrafficLight trafficLight) {
        System.out.println("绿灯不能直接切换为红灯！");
    }
}
